import axios from 'axios'
// import { Loading, Message } from 'element-ui'
import { Message } from 'element-ui'

axios.defaults.timeout = 5000

// http请求拦截器
// let loadinginstace
axios.interceptors.request.use(config => {
  // element ui Loading方法
  // loadinginstace = Loading.service({ fullscreen: true })
  // get token
  // config.headers['X-Token'] = xtoken
  return config
}, error => {
  // loadinginstace.close()
  Message.error({
    message: '加载超时'
  })
  return Promise.reject(error)
})

// http响应拦截器
axios.interceptors.response.use(response => {
  if (response.headers.Authorization) {
    // 如果 header 中存在 token，那么触发 refreshToken 方法，替换本地的 token
    this.$store.dispatch('SetUserToken', response.headers.Authorization)
  }
  // loadinginstace.close()
  if (response.data.status !== 200) {
    Message.error({
      message: response.data.message ? response.data.message : '加载失败'
    })
    return false
  }
  return response.data
}, error => {
  // loadinginstace.close()
  Message.error({
    message: '加载失败'
  })
  return Promise.reject(error)
})

export default axios
